package com.shuda.business.distribution.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.shuda.business.distribution.entity.DistributionSchemeEntity;
import com.shuda.business.distribution.entity.DistributionRuleEntity;
import com.shuda.common.dto.DistributionSchemeDTO;
import com.shuda.common.dto.DistributionRuleDTO;

import java.util.List;

/**
 * 分发方案管理服务接口
 */
public interface DistributionService extends IService<DistributionSchemeEntity> {

    /**
     * 获取分发方案列表
     */
    IPage<DistributionSchemeEntity> getSchemeList(Integer pageNum, Integer pageSize, String schemeName, Integer status);

    /**
     * 获取分发方案详情
     */
    DistributionSchemeEntity getSchemeById(Long id);

    /**
     * 创建分发方案
     */
    Boolean createScheme(DistributionSchemeDTO schemeDTO);

    /**
     * 更新分发方案
     */
    Boolean updateScheme(Long id, DistributionSchemeDTO schemeDTO);

    /**
     * 删除分发方案
     */
    Boolean deleteScheme(Long id);

    /**
     * 更新分发方案状态
     */
    Boolean updateSchemeStatus(Long id, Integer status);

    /**
     * 获取分发规则列表
     */
    IPage<DistributionRuleEntity> getRuleList(Integer pageNum, Integer pageSize, Long schemeId, String ruleName);

    /**
     * 获取分发规则详情
     */
    DistributionRuleEntity getRuleById(Long id);

    /**
     * 创建分发规则
     */
    Boolean createRule(DistributionRuleDTO ruleDTO);

    /**
     * 更新分发规则
     */
    Boolean updateRule(Long id, DistributionRuleDTO ruleDTO);

    /**
     * 删除分发规则
     */
    Boolean deleteRule(Long id);

    /**
     * 获取分发规则选项列表
     */
    List<DistributionRuleEntity> getRuleOptions(Long schemeId);
}